/**
* ...
* @author Ludo
* @version 1.1
*/

import clases.MadParser.MadParser;
import mx.utils.Delegate;
import flash.external.ExternalInterface;

class clases.MadTiros extends MovieClip {

	// Modo local
	public static var local:Boolean = false;

	// Ruta
	public static var pathLocal:String = "xml/Segundo.xml";

	// Fichero XML
	private var xmlFile:XML;
	
	// Parseador
	private var madParser:MadParser;


	// Textos
	
	public var txEquipo1:TextField;
	public var txEquipo2:TextField;
	
	
	// Textos de zonas
	private var txZonaAEquipo1:TextField;
	private var txZonaBEquipo1:TextField;
	private var txZonaCEquipo1:TextField;
	private var txZonaDEquipo1:TextField;
	private var txZonaEEquipo1:TextField;
	private var txZonaFEquipo1:TextField;
	private var txZonaGEquipo1:TextField;
	private var txZonaHEquipo1:TextField;
	private var txZonaIEquipo1:TextField;
	private var txZonaJEquipo1:TextField;
	
	private var txZonaAEquipo2: TextField;
	private var txZonaBEquipo2:TextField;
	private var txZonaCEquipo2:TextField;
	private var txZonaDEquipo2:TextField;
	private var txZonaEEquipo2:TextField;
	private var txZonaFEquipo2:TextField;
	private var txZonaGEquipo2:TextField;
	private var txZonaHEquipo2:TextField;
	private var txZonaIEquipo2:TextField;
	private var txZonaJEquipo2:TextField;

	
	public function MadTiros() 
	{
		
		this._visible = false;
		ExternalInterface.addCallback("pasaXMLTirosAFlash", null, Delegate.create(this, onLoadExternalXML));
		ExternalInterface.addCallback("preparaCarga", null, Delegate.create(this,preparaCarga));
		ExternalInterface.addCallback("errorProducido", null, Delegate.create(this,errorCargaExterna));
		
		
		madParser = new MadParser();
		if(local)
		{
			getLocalXML();
		}
		else
		{
			trace("Hago la llamada a cargaTiros");
			ExternalInterface.call("cargaTiros",50);
		}
		
		Stage.scaleMode = "noScale";
		Stage.align = "TL";
		Stage.addListener(this);
	}
	
	private function getLocalXML()
	{
		preparaCarga();
		xmlFile = new XML();
		xmlFile.ignoreWhite = true;
		xmlFile.onLoad = Delegate.create(this,onLoadXML);
/*		xmlFile.onLoad = function(ok)
		{
			trace(this);
		}*/
		xmlFile.load(pathLocal);
	}
	
	private function onLoadXML(ok:Boolean)
	{
		if(ok)
		{
			changeTiros(xmlFile.toString());
		}
		else
		{
			_level0.mcLoading._visible = false;
			trace("** ERROR ** Carga de " + pathLocal);
		}
	}
	
	private function onLoadExternalXML(data:String)
	{
		trace("Llego al cambio de tiros con " + this);
		changeTiros(data);
		
	}	
	
	private function changeTiros(data:String):Boolean
	{
		if (!madParser.parseTiros(data))
		{
			errorParseado();
			return false;
		}
		
		// Preparo ya la precarga
		if(!local)
		{
			ExternalInterface.call("cargaTiros",madParser.expires*1000);
		}
		else
		{
			var intervalo = setInterval(this,"changeTiros",60000,xmlFile.toString());
		}
		

		txEquipo1.text = madParser.team1;
		txEquipo2.text = madParser.team2;
		
	
		txZonaAEquipo1.text = madParser.zoneTeam1("zoneA");
		txZonaBEquipo1.text = madParser.zoneTeam1("zoneB");
		txZonaCEquipo1.text = madParser.zoneTeam1("zoneC");
		txZonaDEquipo1.text = madParser.zoneTeam1("zoneD");
		txZonaEEquipo1.text = madParser.zoneTeam1("zoneE");
		txZonaFEquipo1.text = madParser.zoneTeam1("zoneF");
		txZonaGEquipo1.text = madParser.zoneTeam1("zoneG");
		txZonaHEquipo1.text = madParser.zoneTeam1("zoneH");
		txZonaIEquipo1.text = madParser.zoneTeam1("zoneI");
		txZonaJEquipo1.text = madParser.zoneTeam1("zoneJ");
		
		txZonaAEquipo2.text = madParser.zoneTeam2("zoneA");
		txZonaBEquipo2.text = madParser.zoneTeam2("zoneB");
		txZonaCEquipo2.text = madParser.zoneTeam2("zoneC");
		txZonaDEquipo2.text = madParser.zoneTeam2("zoneD");
		txZonaEEquipo2.text = madParser.zoneTeam2("zoneE");
		txZonaFEquipo2.text = madParser.zoneTeam2("zoneF");
		txZonaGEquipo2.text = madParser.zoneTeam2("zoneG");
		txZonaHEquipo2.text = madParser.zoneTeam2("zoneH");
		txZonaIEquipo2.text = madParser.zoneTeam2("zoneI");
		txZonaJEquipo2.text = madParser.zoneTeam2("zoneJ");
		
		_level0.mcLoading._visible = false;
		quitaCarga();
		this._visible = true;
		return true;
	}


	private function preparaCarga()
	{
		_level0.mcLoading._visible = true;
		_level0.mcLoading.gotoAnPlay(1);
	}

	private function quitaCarga()
	{
		_level0.mcLoading._visible = false;
		_level0.mcLoading.gotoAnStop(1);
	}		
	
	private function errorCargaExterna()
	{
		ExternalInterface.call("cargaTiros",1000);		
	}
	private function errorParseado()
	{
		ExternalInterface.call("cargaTiros",1000);		
	}	
	
}